SQLite 事务(Transaction)
全部标签 我正在尝试使用参数化查询运行批量删除。目前,我有以下代码:pendingDeletions=newSQLiteCommand(@"DELETEFROM[centres]WHERE[name]=$name",conn);foreach(stringnameinselected)pendingDeletions.Parameters.AddWithValue("$name",name);pendingDeletions.ExecuteNonQuery();但是,参数的值似乎每次都被覆盖,我最终只删除了最后一个中心。使用值列表执行参数化查询的正确方法是什么? 最佳
这是我的交易范围源代码的当前架构。第三个插入抛出一个.NET异常(不是SQL异常)并且它没有回滚前两个插入语句。我做错了什么?编辑:我从insert2和insert3中删除了try/catch。我还从insert1try/catch中删除了异常处理实用程序并放置了“throwex”。它仍然没有回滚事务。编辑2:我在Insert3方法中添加了try/catch,并在catch语句中添加了一个“throw”。它仍然没有回滚事务。更新:根据我收到的反馈,“SqlHelper”类使用SqlConnection对象建立与数据库的连接,然后创建一个SqlCommand对象,将CommandType
在我们的开发环境中,所有ASP.NET应用程序都运行良好。但是,当我在测试机器上部署站点时,在某些页面上出现此异常:NHibernate.TransactionException:Transactionnotconnected,orwasdisconnectedatNHibernate.Transaction.AdoTransaction.CheckNotZombied()ind:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line406atNHibernate.Transaction.Ad
我正在使用C#和ADO.Net以及TransactionScope在ASP.Net应用程序中运行事务。此事务应该跨多个表保存一些数据,然后向订阅者发送电子邮件。问题:当它包含对在SQLServer2014中有自己的事务的存储过程的调用时,它是否是TransactionScope的有效使用,或者我应该删除SQL事务语句,即begintran、committran和rollbacktran语句来自在此TransactionScope中调用的存储过程>?这个场景的C#代码和存储过程的T-SQL代码都在下面提到。使用TransactionScope的C#代码:try{using(Transac
为了在我当前的项目中使用,我创建了一个允许我调用SQLServer异步的类。我的代码是这样的:internalclassCommandAndCallback{publicSqlCommandSql{get;set;}publicTCallbackCallback{get;set;}publicTErrorError{get;set;}}classMyCodes:SingletonBase{privatestaticstring_connString=@"DataSource=MyDB;InitialCatalog=ED;IntegratedSecurity=True;Asynchron
(这是一个在stackoverflow.com中被问到的重复问题。我已经阅读了答案。我已经尝试了这些解决方案,但这并没有解决我的问题。我将解释我的问题是什么我做了什么)。这是我的问题:我的应用程序使用了System.Data.SQLite.DLL。我引用了它,在我的电脑上运行正常,但在另一台电脑上运行失败。这是错误消息:System.IO.FileLoadException:Couldnotloadfileorassembly'System.Data.SQLite,Version=1.0.88.0,Culture=neutral,PublicKeyToken=db937bc2d44ff
我必须用单个事务插入两个表,必须实现的查询如下。其次在SqlDataReaderread=comm.ExecuteReader();获取异常publicvoidSqlExecuteNonQuery(Customerobj){//stringquery="DECLARE@_customerIDint";stringquery1="INSERTINTOcustomer(customerName,customerSex,Email)VALUES('"+obj.name+"','"+obj.sex+"','"+obj.Email+"')";//stringquery2="SET@_custom
我知道对于多部分写入,我应该在nhibernate中使用事务。但是对于简单的读写(1部分)呢……我读到始终使用事务是一种很好的做法。这是必需的吗?我应该做以下简单阅读吗?或者我可以将交易部分全部放在一起吗?publicPrinterJobRetrievePrinterJobById(Guidid){using(ISessionsession=sessionFactory.OpenSession()){using(ITransactiontransaction=session.BeginTransaction()){varprinterJob2=(PrinterJob)session.G
我在本地机器上创建了一个私有(private)MSMQ。我正在使用以下C#代码将消息发送到队列。当我将队列更改为事务性队列时,消息未到达MSMQ。但是,在Send方法中没有抛出异常。我需要进行哪些更改才能使其正常工作?usingSystem;usingSystem.Messaging;usingSystem.Data;publicpartialclass_Default:System.Web.UI.Page{//Sharingviolationresultedfromqueuebeingopenalreadyforexclusivereceive.MessageQueuehelpReq
我正在为使用EntityFrameworkCore并根据docs的项目编写单元测试。我可以使用SQLite内存模式或TheInMemoryprovider来近似数据库上下文。文档指出SQLite内存模式的行为类似于关系数据库,InMemory提供程序的行为并不总是像关系数据库。据我所知,SQLite模式听起来更好,因为它的行为类似于关系数据库,而InMemory提供程序则不然,但我想还有其他方面需要考虑,否则没有人会使用InMemory提供程序听起来更糟。在选择使用哪种工具之前,我应该考虑每种方法的其他优缺点吗? 最佳答案 如果您的